Efficient Evolution of Machine Code for CISC Architectures using Blocks and Homologous Crossover

نویسندگان

  • Peter Nordin
  • Wolfgang Banzhaf
  • Frank Francone
چکیده

This chapter describes recent advances in genetic programming of machine code. Evolutionary program induction of binary machine code is one of the fastest GP methods and the most well studied linear approach. The technique has previously been known as Compiling Genetic Programming System (CGPS) but to avoid confusion with methods using an actual compiler and to separate the system from the method, the name has been changed to Automatic Induction of Machine Code with Genetic Programming (AIM-GP). AIM-GP stores individuals as a linear string of native binary machine code, which is directly executed by the processor. The absence of an interpreter and complex memory handling allows increased speed of several orders of magnitudes. AIM-GP has so far been applied to processors with a fixed instruction length (RISC) using integer arithmetics. This chapter describes several new advances to the AIM-GP method which are important for the applicability of the technique. Such advances include enabling the induction of code for CISC processors such as the most widespread computer architecture INTEL x86 as well as JAVA and many embedded processors. The new technique also makes AIM-GP more portable in general and simplifies the adaptation to any processor architecture. Other additions include the use of floating point instructions, control flow instructions, ADFs and new genetic operators e.g. aligned homologous crossover. We also discuss the benefits and drawbacks of register machine GP versus tree-based GP. This chapter is meant to be a directed towards the practitioner, who wants to extend AIM-GP to new architectures and application domains.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

2.1 Introduction

This chapter describes recent advances in genetic programming of machine code. Evolutionary program induction using binary machine code is the fastest known Genetic Programming method. It is, in addition, the most well studied Genetic Programming system that uses a linear genome. Evolutionary program induction using binary machine code was originally referred to as Compiling Genetic Programming...

متن کامل

A Brute-Force Approach to Automatic Induction of Machine Code on CISC Architectures

RISC stands for " Reduced Instruction Set Computer ". On RISC architectures the instruction length is constant, e.g. 32 bit on a SPARC. For a given instruction opcode there are certain bits which encode the opcode and others which encode the parameters. This makes point mutations conserving syntactic closure straight−forward. Parameters of an instruction can be changed by only modifying the bit...

متن کامل

Repeated Sequences in Linear Genetic Programming Genomes

Biological chromosomes are replete with repetitive sequences, microsatellites, SSR tracts, ALU, and so on, in their DNA base sequences. We started looking for similar phenomena in evolutionary computation. First studies find copious repeated sequences, which can be hierarchically decomposed into shorter sequences, in programs evolved using both homologous and two-point crossover but not with he...

متن کامل

Efficient, Verifiable Binary Sandboxing for a CISC Architecture

Executing untrusted code while preserving security requires enforcement of memory and control-flow safety policies: untrusted code must be prevented from modifying memory or executing code except as explicitly allowed. Software-based fault isolation (SFI) or “sandboxing” enforces those policies by rewriting the untrusted code at the level of individual instructions. However, the original sandbo...

متن کامل

A Machine-Checked Safety Proof for a CISC-Compatible SFI Technique

Executing untrusted code while preserving security requires that the code be prevented from modifying memory or executing instructions except as explicitly allowed. Software-based fault isolation (SFI) or “sandboxing” enforces such a policy by rewriting code at the instruction level. In previous work, we developed a new SFI technique that is applicable to CISC architectures such as the Intel IA...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1998